Often a company stores important information in various data sources. For example, a human resources department may store information about employees in a human resources data source. The human resources data source may be arranged or organized according to a human resources specific information structure or hierarchy. A finance department may also store information about employees, clients, suppliers, etc., in a finance department data source. The finance department data source may be arranged or organized according to a finance department information structure or hierarchy. It is likely that some common information exists in both data sources. Thus, synchronizing the information becomes desirable.
A synchronizing process typically implements rules and/or specifications to adequately harmonize information in various data sources. Further, such a process may rely on an engine capable of executing software and a storage capable of storing the information, as appropriate. In general, the synchronizing process may replicate information from various data sources in a central storage, wherein the replicated information has some degree of integrity. To achieve this task, information from the various data sources are either pushed or pulled into the central storage. In addition, information may be pulled or pushed out of such a central storage to the various data sources.
Often, the information may be provided to the central storage by one of the various data sources non-chronologically. In other words, the modifications that occur at a data source have a temporal relationship. However, due to the nature of synchronization, notification of those modifications may reach the central storage out of order with respect to that temporal relationship. This situation has the potential to create problems during synchronization. Various exemplary methods, devices and/or systems described below are directed at those problems.